<%-- 
    Document   : subir
    Created on : 6/10/2011, 01:29:11 PM
    Author     : Jose
--%>

<%@page import="java.util.LinkedList"%>
<%@ page import="java.util.*" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="org.apache.commons.fileupload.disk.*" %>
<%@ page import="org.apache.commons.fileupload.servlet.*" %>
<%@ page import="org.apache.commons.io.*" %>
<%@ page import="java.io.*" %>
<%@ page import="PaquetesJL.*" %>
<%@page import="java.sql.ResultSet" %>

<%    

    String ImagesUpload = pageContext.getServletContext().getInitParameter("ImagesUpload");
    FileItemFactory file_factory = new DiskFileItemFactory();
    ServletFileUpload servlet_up = new ServletFileUpload(file_factory);
    List items = servlet_up.parseRequest(request);
    
    String mensaje="",idbanco="";
    String valor="";
    boolean DatosLlenos=true;
    for(int i=0;i<items.size() && DatosLlenos;i++){		
        FileItem item = (FileItem) items.get(i);		                
        if (item.isFormField()){
            valor=item.getString();
            if(valor.isEmpty())
                DatosLlenos=false;            
        }else{
            if(item.getName().isEmpty()){
                DatosLlenos=false;
            }else{
                //creamos un nombre, para que no se sobbre-escriban archivos
                valor=ImagesUpload+(new Date().getTime())+item.getName();
                //cual sera la ruta al archivo en el servidor
                File archivo_server = new File(valor);
                //y lo escribimos en el servido
                item.write(archivo_server);
                
                
            }
	}        	
    }            
    if(!DatosLlenos){
        mensaje="Debe selecciona la ruta del archivo.";
    }else{        
        Object[] InfoSubida=ConexionBD.AbrirCVS(valor);
        if((Integer)InfoSubida[0]<0){
            mensaje=InfoSubida[1].toString();
        }else{
            idbanco=InfoSubida[0].toString();
            mensaje=InfoSubida[1].toString();
            LinkedList<Object[]> Lista=(LinkedList) InfoSubida[2];
            mensaje=InfoSubida[1].toString().replace("\n", "<br>");                        
            
            mensaje+="<fieldset>"
                    + "<div id=\"tabla_folio\">"
                    + "<div id=\"mensaje_resultado\" class=\"fm-req\"></div>"
                    + "<legend>Visualizacion de Folio</legend>"
                    + "<label>Identificador del Banco: "+idbanco+"</label>"
                    + "<br>"
                    + "<table border=\"1\">"
                    + "<thead>                            "
                    + "<tr>"
                    + "<th>Cuenta</th>"
                    + "<th>Cheque</th>"
                    + "<th>Monto</th>"                    
                    + "</tr>"
                    + "</thead>"
                    + "<tbody>";
            
            Double total=0.0;
            for(int i=0;i<Lista.size();i++){
                mensaje+="<tr>"
                    +"<td>"+Lista.get(i)[0].toString()+"</td>"
                    +"<td>"+Lista.get(i)[1].toString()+"</td>"
                    +"<td>"+Lista.get(i)[2].toString()+"</td>" 
                    +"</tr>";
                total+=(Double)Lista.get(i)[2];
            }  
            mensaje+="</tbody>"
                    + "<thead>"
                    + "<tr>"
                    + "<th colspan=\"3\">Monto Total: "+total+"</th>                                "
                    + "</tr>"
                    + "</thead>"
                    + "</table>"
                    + "</div>"                    
                    + "<div id=\"otro_mensaje\" class=\"fm-req\"></div>                    "
                    + "</fieldset>";                                    
            
            if(Lista.size()>0){
                String sqlServer = pageContext.getServletContext().getInitParameter("sqlServer");
                String databaseName = pageContext.getServletContext().getInitParameter("databaseName");
                String userName = pageContext.getServletContext().getInitParameter("userName");
                String PasswordP = pageContext.getServletContext().getInitParameter("password");
                String Backup = pageContext.getServletContext().getInitParameter("RutaBackup");

                byte[] decodedBytes = ConexionBD.decode(PasswordP);
                String decodedPassword = new String(decodedBytes).trim();

                ConexionBD Conexion = new ConexionBD(sqlServer, databaseName, userName, decodedPassword, Backup);    
                Conexion.IniciarConexion();
                int id_folio=-1;
                ResultSet ResultS=Conexion.EjecutarConsulta("EXEC CrearFolio "+idbanco+";"); 
                if(ResultS.next())
                    id_folio=ResultS.getInt(1);
                Conexion.CerrarConexion();

                for(int i=0;i<Lista.size();i++){
                    Conexion = new ConexionBD(sqlServer, databaseName, userName, decodedPassword, Backup);    
                    Conexion.IniciarConexion();            
                    ResultS=Conexion.EjecutarConsulta("EXEC InsertarChequeFolio "+id_folio+","+
                            Lista.get(i)[0].toString()+","+Lista.get(i)[1].toString()+","+
                            Lista.get(i)[2].toString()+";");                 
                    Conexion.CerrarConexion();
                }            
                mensaje+="Folio creado exitosamente.<br>";
            }else{
                mensaje+="No se obtuvo ningun dato valido.<br>";
            }
            
        }
        
    }    
            
    response.sendRedirect("../Grabador.jsp?Mensaje="+mensaje);          
%>

